#ifndef __CONTROLLERTHREAD_H
#define __CONTROLLERTHREAD_H

#include "Common.h"
#include "IThread.h"

typedef enum {
    MOTOR_COMMAND='a',                      //DO NOT REMOVE OR INSERT NEW ITEMS WITHOUT UPDATING CONTROLLER
    READ_IMU,                               //b
    READ_GPS,                               //c
    NAVIGATION,                             //d
    MANEUVER,                               //e
    STATUS,                                 //f
    SET_AUTONOMOUS_MODE,                    //g
    COMMAND_OS
} CONTROLLER_COMMAND;

class ControllerThread : public IThread{
private:
    Motor* _jib;
    Motor* _main;
    Motor* _portRudder;
    Motor* _stbdRudder;

public:
    ControllerThread(Motor* main, Motor* jib, Motor* portRudder, Motor* stbdRudder);

    void run();
};

#endif // __CONTROLLERTHREAD_H
